package eu.telecom_bretagne.RECRUT.service;

import java.util.Date;
import java.util.List;

import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;

import eu.telecom_bretagne.RECRUT.data.dao.DossierCandidatureDAO;
import eu.telecom_bretagne.RECRUT.data.dao.EntretienDAO;
import eu.telecom_bretagne.RECRUT.data.model.DossierCandidature;
import eu.telecom_bretagne.RECRUT.data.model.Entretien;

/**
 * Session Bean implementation class ServiceEntretien
 */
@Stateless
@LocalBean
public class ServiceEntretien implements IServiceEntretien {
	@EJB
	EntretienDAO entretienDAO;
	@EJB
	DossierCandidatureDAO dossierCandidatureDAO;
	
    /**
     * Default constructor. 
     */
    public ServiceEntretien() {    }
    
	@Override
	public List<Entretien> listeEntretiens() {
		
		return entretienDAO.findAll();
	}
	
	@Override
	public Entretien lireEntretien (int id){
		
		return entretienDAO.findById(id);
	}
	
	@Override
	public void modifierEntretien (int id, Date nouvelleDate){
		
		Entretien entretien = lireEntretien(id);
		entretien.setDateEntretien(nouvelleDate);
	}

	@Override
	public Entretien creerEntretien (Date date, int idDossier){
		
		DossierCandidature dossier = dossierCandidatureDAO.findById(idDossier);
		Entretien entretien = new Entretien();
		entretien.setDossierCandidature(dossier);
		entretien.setDateEntretien(date);
		
		dossier.getEntretiens().add(entretien);

		entretienDAO.create(entretien);
		dossierCandidatureDAO.update(dossier);
		
		return entretien;
		
	}
	
	@Override
	public void supprimerEntretien (int id){
		
		Entretien entretien = entretienDAO.findById(id);	
		DossierCandidature dossierEntretien = entretien.getDossierCandidature();
		
		dossierEntretien.removeEntretien(entretien);
		
		dossierCandidatureDAO.update(dossierEntretien);
		entretienDAO.delete(entretien);

		
	}
	
}
